Components included in an application XML file

To understand about the component included in an application XML file, you must first understand about the types of objects in an application.

An application consists of core and dependent objects. When you create a new object for an application, by default it becomes a core object. Core objects are published and installed with the applications. Dependent objects are pre-requisites to application installation. So, dependent objects must be installed in a tenant before the application depending on them is installed. Object relationships and conversion maps are only published with an application if both the source and destination objects are included in that application, either as core or dependent objects.

You can explicitly assign dependent objects to an application. Platform automatically adds dependent objects to maintain application integrity in the following cases:

  • If a Role is given application permissions, the permissions assigned to that role are published as part of the application XML. This is because the User object is a dependent object for all applications.
  • If any core objects have the Approval attribute, the Approval object will be added as a dependent object.
  • If any core objects have the Contact attribute, the Communication Log object will be added as a dependent object.
  • If certain objects are not included as core objects but they are related to the objects included on the application menu, then those objects will be added as dependent objects.

Note: The dependent objects that Platform adds to the application cannot be removed from the application.

The application view lists objects assigned explicitly and those included implicitly through tabs. Explicitly assigned objects have a Remove action link. Implicitly assigned objects can be removed only after removing the corresponding tab. For example, if there is an application that has Accounts and Contacts tabs, and the two tabs are related and the application only explicitly assigns an Account detail object. When this application is published, it will include the following objects: Account, Contact and Account Detail (without a tab).

The following table summarizes the conditions under which components are included in the Platform application XML file:

Component Included during publication if:
Object definitions Object belongs to the package
Fields Owning object belongs to the package
Views Owning object belongs to the package
Pages Owning object belongs to the package
Templates Owning object belongs to the package
Menus and submenus Owning object (if any) belongs to the package
Relationship definitions Objects on both sides of the relationship belong to the package
Import maps Owning object belongs to the package
Conversion maps Objects on both sides of the conversion belong to the package
List View object belongs to the package
Report Owning object belongs to the package
Chart Objects used in X and Y axes belong to the package
Gauge Owning object belongs to the package
Related list Parent object belongs to the package
Report links Report belongs to an object in the package
Lookup fields Lookup object belongs to the package
Related fields Related object belongs to the package
User roles Assigned to the application
Portal Assigned to the application
Hosted files Assigned to the application
Batch jobs Assigned to the application
Progress Data Catalogs Assigned to the application
Workflow processes, actions, and statuses Owning object belongs to the package
Triggers Owning object belongs to the package
Survey questions Owning object belongs to the package
Seed records Assigned to the application
Authentication Profile Assigned to the application